package com.bear.hospital.service.login.handle;

/**
 * 登录类型枚举，用于标识不同类型的用户登录。
 */
public enum LoginEnum {
    /**
     * 管理员登录
     */
    ADMIN("admin"),
    /**
     * 医生登录
     */
    DOCTOR("doctor"),
    /**
     * 患者登录
     */
    PATIENT("patient");

    private final String type;

    LoginEnum(String type) {
        this.type = type;
    }

    /**
     * 获取与枚举关联的类型字符串。
     *
     * @return 类型字符串
     */
    public String getType() {
        return type;
    }

    /**
     * 根据给定的类型字符串返回相应的枚举实例。
     *
     * @param type 类型字符串
     * @return 对应的枚举实例，如果未找到则抛出异常
     * @throws IllegalArgumentException 如果找不到匹配的枚举实例
     */
    public static LoginEnum fromType(String type) {
        for (LoginEnum loginType : values()) {
            if (loginType.getType().equalsIgnoreCase(type)) {
                return loginType;
            }
        }
        throw new IllegalArgumentException("Unknown login type: " + type);
    }
}